package org.sloth.core.load.proxy
{
	import flash.events.EventDispatcher;
	import flash.events.IEventDispatcher;
	
	import org.sloth.core.load.LoadVO;
	
	[Event(name="error", type="flash.events.Event")]
	[Event(name="complete", type="flash.events.Event")]
	[Event(name="progress", type="flash.events.Event")]
	public class LoadAbstract extends EventDispatcher implements ILoadProxy
	{
//============================================================================
//PROPERTY
//============================================================================
		private var _data:*;
		private var _vo:LoadVO;
		protected var _isLoading:Boolean = false;
//============================================================================
//CONSTRUCTOR
//============================================================================
		public function LoadAbstract()
		{
			super();
		}
//============================================================================
//PUBLIC
//============================================================================
		public function load(vo:LoadVO):void
		{
			throw new Error("The subclass of LoadAbstract must override function load()");
		}
//============================================================================
//GETTER/SETTER
//============================================================================
		public function get data():*
		{
			return _data;
		}
		
		public function set data(value:*):void
		{
			_data = value;
		}
		
		public function get isLoading():Boolean
		{
			return _isLoading;
		}
		
		public function get vo():LoadVO
		{
			return _vo;
		}
		
		public function set vo(value:LoadVO):void
		{
			_vo = value;
		}
	}
}